﻿using System.Net;
using System.Net.Sockets;
using System.Text;

namespace Kay.Communication.Framework
{
    /// <summary>
    /// 创建基础通信时使用的参数
    /// </summary>
    public class CommunicationArgs
    {
        /// <summary>
        /// 指定 System.Net.Sockets.Socket 类的实例可以使用的寻址方案。
        /// </summary>
        public AddressFamily AddressFamily { get; set; }

        /// <summary>
        /// 指定 System.Net.Sockets.Socket 类的实例表示的套接字类型。
        /// </summary>
        public SocketType SocketType { get; set; }

        /// <summary>
        /// 指定 System.Net.Sockets.Socket 类支持的协议。
        /// </summary>
        public ProtocolType ProtocolType { get; set; }

        /// <summary>
        /// Socket 的模型
        /// </summary>
        public CommunicationModes CommunicationMode { get; set; }

        /// <summary>
        /// 网络地址
        /// </summary>
        public EndPoint EndPoint { get; set; }

        /// <summary>
        /// 等待队列的长度
        /// </summary>
        public int Waiting { get; set; }

        /// <summary>
        /// 指定 Socket 使用的编码
        /// </summary>
        public Encoding Encoding { get; set; }

        /// <summary>
        /// 消息长度
        /// </summary>
        public int MessageLength { get; set; }

        /// <summary>
        /// Udp 数据包包含的数据长度
        /// </summary>
        public int UdpDataLength { get; set; }
    }
}